package com.example.martian.mapper;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

@Repository
public interface RegisterMapper {

    //注册
    int insertAddressPhone(Map<String, Object> map);

    //查询用户是否存在
    int selectAddress(String address);

    //查询id是否存在
    int selectById(Integer userId);

    int checkLogpwdBuyId(Map<String, Object> map);

    List<Map<String, Object>> getUserid(Map<String, Object> map);

    //根据用户名查询用户id
    List<Map<String, Object>> checkUserIdExists(@Param("address") String address);

    void jyPassword(int userid, String jypassword);

    //忘记密码
    void forgetPass(String address,String password);

    //修改登录密码
    void updatePassword(Map<String, Object> param);

    //根据id查询用户密码
    String selectAccountById(Integer userid);

    //根据id查询用户所有数据
    String selectAccountAddressById(@Param("userId") Integer userId);

    Integer selectAccountPersonById(@Param("userId") Integer userId);

    //查询所有用户邀请码
    List<Integer> selectInvitationcode();

    //通过主键邀请码查询id
    Integer selectAccountByInvitationcode(String invitationcode);

    //修改邀请人数
    void updatePerson(Map<String, Object> param);

    int selectAccountByInvitationcodeCount(String invitationcode);

    //修改昵称或者头像
    int updateNickName(Map<String, Object> param);

    //查询币种
    List<Map<String, Object>> checkCoin();

    void insertAddressCoin(Map<String,Object> objectMap);

    //添加用户挖矿币种
    void insertAddressCoinMining(Map<String,Object> objectMap);

    //身份认证状态查询
    Integer selectAuthenticationZt(Integer userId);

    //添加挖矿账户初始收益
    void insertMiningEarnings(Map<String,Object> map);

    String selectInvitationcodeById(Integer userId);

    //查询昵称和头像
    List<Map<String, Object>> selectNikeNameAndPhoto(@Param("userId") Integer userId);

    //添加user表
    int insertUser(Map<String,Object> map);

    //查询直接邀请上一级id
    Integer selectDirect_id(Integer userid);

    //更改间接邀请
    void updateIndirect_id(Integer indirect,Integer userid);

    //查询钱包个数
    int selectCountWallet(String address);

    //查询邀请人购买的台数
    int selectBuyCount(Integer userid);

    //查询挖矿钱包个数
    int selectCountWalletMinings(String address);

    //获取版本更新信息
    Map<String, Object> appUpdateInfomation();

    //修改交易密码状态
    void updateJymimaZt(Integer jymimaZt,Integer userId);

    //查询交易密码状态
    Integer checkJymimaZt(Integer jymimaZt);

    //查询交易密码状态
    String selectNewAward(Integer userId);

    //查询邀请奖励
    String selectInviteAward(Integer userId);
}
